namespace AutoChess
{
    /*
    * 抽象出动画的接口：
    * 1、默认的Unity Animator
    * 2、GPU 烘培到贴图的方式
    * 3、烘培到Mesh
    */
    interface AnimatorInterface
    {
        /// <summary>
        /// 初始化接口，这里获取模型对应的动画组件或其他实现需要的组件
        /// </summary>
        /// <param name="ownAnimator"></param>
        /// <returns></returns>
        bool Create(ActorAnimator ownAnimator);
        
        /// <summary>
        /// 设置动画参数控制动画
        /// </summary>
        /// <param name="paramId"></param>
        /// <param name="val"></param>
        void SetIntParam(int paramId, int val);
        void SetBoolParam(int paramId, bool val);
        void SetTrigget(int triggerId);
        
        /// <summary>
        /// 动画整体速度
        /// </summary>
        /// <param name="speed"></param>
        void SetAnimCtrSpeed(float speed);

        /// <summary>
        /// 播放动画
        /// </summary>
        void PlayAnimator(string aniName);

        /// <summary>
        /// 融合的播放动画
        /// </summary>
        void PlayCrossFade(string aniName,float transitionDuration = 0.2f,int layer = 0,float normalizedTime = 0);
    }
}